Currently, cargo uses `curl_easy_setopt` to explicitly set the http proxy on a curl handle if any of the following are present:
* cargo config `http.proxy`
* git config `http.proxy`
* `HTTP_PROXY` environment variable
The act of explicitly setting the http proxy disables curl's logic for determining which proxy to use for a URL, and breaks the `no_proxy` environment variable. This PR privatizes `cargo::ops::registry::http_proxy` and adds an additional function `cargo::ops::registry::http_proxy_exists` to determine whether or not to use the `git2-curl` subtransport.